package com.lm.negotiation.config;


import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer
                // 支持 URL 后缀形式，如 .json 或 .xml
                .favorPathExtension(true)
                // 支持查询参数，如 ?format=json 或 ?format=xml
                .favorParameter(true)
                .parameterName("format")
                // 如果未指定，则根据请求头返回内容类型
                .ignoreAcceptHeader(false)
                .useRegisteredExtensionsOnly(false)
                // 默认返回 JSON
                .defaultContentType(MediaType.APPLICATION_JSON)
                // 注册媒体类型
                .mediaType("json", MediaType.APPLICATION_JSON)
                .mediaType("xml", MediaType.APPLICATION_XML);
    }
}
